package it.univaq.di.helpdesk.business.common;

import it.univaq.di.helpdesk.business.errors.BusinessException;
import it.univaq.di.helpdesk.business.model.Attachment;
import it.univaq.di.helpdesk.business.model.Category;
import it.univaq.di.helpdesk.business.model.Comment;
import it.univaq.di.helpdesk.business.model.Priority;
import it.univaq.di.helpdesk.business.model.Status;
import it.univaq.di.helpdesk.business.model.Ticket;

import java.util.List;
import java.util.Map;

public interface TicketService {
	public Ticket findTicketById(int ID) throws BusinessException;
	
	public void addTicket(Ticket tiket) throws BusinessException;
	
	public List<Category> findSubCatgories(int parentID) throws BusinessException;
	
	public List<Category> findParentCategories() throws BusinessException;
	
	public List<Priority> findPriorities() throws BusinessException;
	
	public List<Status> findStatus() throws BusinessException;
	
	public void addComment(Comment comment) throws BusinessException;
	
	public List<Comment> findCommentsByTicketId (int ticketID) throws BusinessException;
	
	public Attachment getAttachmentById(int attachmentID) throws BusinessException;
	
	public void addAttachment(Attachment attachment) throws BusinessException;

	public List<Ticket> findTicketList(Map<String, String> queryParam) throws BusinessException;
	
	public void changeTicketPriority(Map<String, String> mappriority) throws BusinessException;

	public void changeTicketStatus(Map<String, String> mapstatus) throws BusinessException;

}
